// readdir.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h> 
#include <dirent.h> 
#include <sys/types.h> 
#include <unistd.h> 
 
int main(int argc, char *argv[]) 
{ 
	if (argc != 2) 
	{ 
		fprintf(stderr, "Usage: %s <directory>\n", argv[0]); 
		exit(EXIT_FAILURE); 
	} 	
	DIR *dir = opendir(argv[1]); // 系统调⽤，⾃⾏查阅 
	if (!dir) 
	{ 
		perror("opendir"); 
		exit(EXIT_FAILURE); 
	} 
	
	struct dirent *entry; 
	while ((entry = readdir(dir)) != NULL) 
	{ 
		// 系统调⽤，⾃⾏查阅 
		// Skip the "." and ".." directory entries 
		if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..")== 0)  
			continue; 
		printf("Filename: %s, Inode: %lu\n", entry->d_name, (unsigned long)entry->d_ino); 
	} 	
	closedir(dir); 
	return 0; 
}
